/*
Copyright 2000-2011 Francois de Bertrand de Beuvron

This file is part of CoursBeuvron.

CoursBeuvron is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

CoursBeuvron is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with CoursBeuvron.  If not, see <http://www.gnu.org/licenses/>.
 */
package fr.insa.beuvron.tps.m2.dessin2DV3.gui;

import fr.insa.beuvron.tps.m2.dessin2DV3.Point;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

/**
 * Un petit formulaire pour entrer les caractéristiques d'un point.
 * Il est un peu mieux que PointPanel. Mais il n'alligne pas les champs
 * texte : le JTextField suit immédiatement le JLabel. Donc si les JLabel
 * ne sont pas de même taille dans les lignes, les JTextField ne sont pas
 * alignés. 
 * Je ne vois pas de solution simple avec seulement des BorderLayout
 * @author francois
 */
public class PointPanel2 extends JPanel{
    
    public JTextField jtfPx;
    public JLabel jlPx;
    public JPanel jpPx;
    
    public JTextField jtfPy;
    public JLabel jlPy;
    public JPanel jpPy;
    
    public PointPanel2() {
        this.setLayout(new BorderLayout());
        JPanel courant = this;
        JPanel suivant;
        
        this.jpPx = new JPanel(new BorderLayout());
        this.jlPx = new JLabel("abscisse : ");
        this.jpPx.add(this.jlPx,BorderLayout.WEST);
        this.jtfPx = new JTextField(10);
        this.jpPx.add(this.jtfPx,BorderLayout.CENTER);
        
        courant.add(this.jpPx,BorderLayout.NORTH);
        suivant = new JPanel(new BorderLayout());
        courant.add(suivant,BorderLayout.CENTER);
        courant = suivant;
        
        
        this.jpPy = new JPanel(new BorderLayout());
        this.jlPy = new JLabel("ordonnée : ");
        this.jpPy.add(this.jlPy,BorderLayout.WEST);
        this.jtfPy = new JTextField(10);
        this.jpPy.add(this.jtfPy,BorderLayout.CENTER);
        
        courant.add(this.jpPy,BorderLayout.NORTH);
        // le code ci-dessous est inutile
        // puisqu'il n'y a plus d'autres lignes dans le formulaire
        // mais c'est pour montrer que si j'avais d'autres lignes dans le 
        // formulaire, je pourrais les ajouter de la même façon que
        // abscisse et ordonnée
//        suivant = new JPanel(new BorderLayout());
//        courant.add(suivant,BorderLayout.CENTER);
//        courant = suivant;
        
    }

    public void modifieEditeur(Point p) {
        this.jtfPx.setText("" + p.getAbscisse());
        this.jtfPy.setText("" + p.getOrdonnee());
    }
    
    public void modifieObjet(Point p) {
        p.setAbscisse(Double.parseDouble(this.jtfPx.getText()));
        p.setOrdonnee(Double.parseDouble(this.jtfPy.getText()));
    }
}
